import Vue from 'vue'
import 'normalize.css/normalize.css' // A modern alternative to CSS resets
import ElementUI from 'element-ui' // 使用的ui库
import 'element-ui/lib/theme-chalk/index.css' // elementui的依赖样式文件
import '@/styles/index.scss' // global css
import App from './App' // 项目的根组件
import store from './store' // vuex的仓库
import router from './router' // 项目的路由
import i18n from '@/lang/index'
import '@/icons' // icon
import '@/permission' // 权限控制

// 打印插件的注册
import Print from 'vue-print-nb'
// Global instruction
// 给全局提供了一个v-print指令
// use注册插件
Vue.use(Print)

// export function name() {}

// 导入插件
import components from '@/components'

Vue.use(components)

// Vue.use(ElementUI, { locale })
Vue.use(ElementUI, {
  i18n: (key, value) => i18n.t(key, value)
})
Vue.config.productionTip = false

// 注册所有的过滤器
import * as filters from '@/filters'

console.log(filters) // 什么数据格式？对象
// 遍历对象
// 一次性注册所有过滤器
for (const filtersKey in filters) {
  Vue.filter(filtersKey, filters[filtersKey])
}
// 使用过滤器
// 1、导入所有的自定义指令
import * as directives from '@/directives'
// 2、进行循环遍历注册指令
for (const key in directives) {
  Vue.directive(key, directives[key])
}
new Vue({
  i18n,
  el: '#app',
  router, // 配置路由
  store, // vuex
  render: (h) => h(App) // 渲染根组件
})
